package com.java.jian;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;

/**
 * @author Jiange
 * @create 2021-04-09-19:38
 */
public class SessionTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //session就是客户端和服务器之间的一种关联技术 每个客户端都有自己的一个session 一般存用户登陆后的信息 session存在服务器

        HttpSession session = req.getSession();
        //getSession第一次调用表示获取sessio对象  之后 调用表示获取前面创建好的session
        boolean aNew = session.isNew();
        //true表示新创建的  false表示旧的  每个会话都有一个id值
        String id = session.getId();

        resp.getWriter().write(id);

        session.setMaxInactiveInterval(10); //正数表示秒数  负数表示永不超时
        int maxInactiveInterval = session.getMaxInactiveInterval();
        //session的默认的超时时长为30分钟  因为在tomcat里面配置过了  你也可以在自己的web.xml里面配置
        //超时是指 之间的距离
//        session.invalidate();//马上销毁这个session

        /**
         * 服务器在创建一个session会话的时候都会创建一个cookie对象，这个cookie对象的key永远是JSESSIONID 值是id值
         * 客户端跳转
         */

        Object kaptcha_session_key = session.getAttribute("KAPTCHA_SESSION_KEY");
        session.removeAttribute("KAPTCHA_SESSION_KEY");


//        boolean multipartContent = ServletFileUpload.isMultipartContent(req);
//        if (multipartContent){
//            FileItemFactory fileItemFactory = new DiskFileItemFactory();
//            ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
//            try {
//                List<FileItem> fileItems = servletFileUpload.parseRequest(req);
//                fileItems.forEach(e->{
//                    if(!e.isFormField()){
//                        String fieldName = e.getFieldName();
//                        String string = e.getString();
//                        String name = e.getName();
//                        try {
//                            e.write(new File(""));
//                        } catch (Exception exception) {
//                            exception.printStackTrace();
//                        }
//                    }
//                });
//            } catch (FileUploadException e) {
//                e.printStackTrace();
//            }
//        }
        ServletContext servletContext = getServletContext();
        InputStream resourceAsStream = servletContext.getResourceAsStream("");
        String mimeType = servletContext.getMimeType("/WEB-INF/file/1.jpg");

        resp.setContentType(mimeType);
        resp.setHeader("content-dispisition","attachment;filename="+ URLEncoder.encode(""));

//        IOUtils.copy()
    }
}
